创世文档:如果说比特币有一个初稿的话,那就是Wei Dai的B-Money
所有的Cypherpunks(密码朋克)都很重视隐私;上世纪九十年代,由一群密码学家、学者、开发者及活动家组成的同样名为“Cypherpunks”的邮件订阅名单,他们所秉持的基本理念也是注重隐私。很实际生活中很少人能够像Wei Dai那样真正践行这个理念。Wei Dai曾经被纽约时报形容为一个“非常注重隐私的计算机工程师”,并不多透露他的私人生活。二十年前,正是这位工程师发明了一个与比特币非常相似的电子现金系统。
尽管Wei Dai 的并不透露他的私人生活,但他却贡献了大量的工作和创意。作为一名杰出的工程师,他发明了Crypto++——一个专为加密算法而设立的C++库,他时至今日依然在维护这个库。Dai也一直活跃在像LessWrong这样的理性论坛上,参与人工智能、伦理、认识论等话题的讨论。他高超的造诣受到了受到了著名人工智能学者Eliezer Yudkowsky的赞赏,甚至不断邀请Dai到他的 机器智能研究中心(MIRI,前身为奇点研究中心)来演讲。
Dai对于哲学和政治的兴趣早已不是什么新鲜事了。早在九十年代,Dai还是华盛顿大学计算机专业的本科生,他的好奇心促使他开始阅读Timothy May的作品,而Timothy May正是Cypherpunk运动的创始人之一。May宣讲的加密学无政府主义极大地鼓舞了Dai。这个全新的思想流派开始在Cypherpunks圈子中广为流传,他们相信密码学和软件比任何政府系统都能够为人民带来政治和经济自由。
“Tim May的加密学无政府主义令我十分着迷,” Dai于1998年写道,“和其他传统上与‘无政府主义’相关的组织不同,在加密需无政府主义中,政府并不是被暂时摧毁,而是被永远地禁止,而且永远也不需要政府。在这个社区中暴力并没有用,根本就不存在暴力,因为这个社区的成员并不知道彼此的真名或者真实地址。”
到了九十年代中期,Dai参与了Cypherpunks邮件订阅名单中的许多讨论,比如数字声誉系统,博弈论, 隐私以及电子现金系统中的匿名性。也许更重要的是, Dai撰写了一系列提案来推动Cypherpunk这个组织的愿景,包括受信任的时间戳,一个加密TCP隧道工人,一个安全文档传输系统等等。这使得他在Cypherpunk社区中名声大涨,尽管当时并没有人与他有任何私交。(Timothy May最近说当时甚至连Dai是男是女都不知道。)
最让Dai家喻户晓的是其于1998年11月非常随意地一提的想法,当时他刚刚从大学毕业。“高效的合作需要有一个交换(金钱)的平台以及确保合同执行的方法,” Dai解释道,“本文提出的这项协议提供了交易的平台以及确保合同执行的方法,使得不可追踪的匿名的参与者能够更高效地与彼此合作。[...] 我希望这个协议能够进一步推动加密学无政府主义在理论上以及在时间上向前迈进。”
他将他的提案称为“b-money(b现金)”。
B-money
典型的电子现金系统会使用一个中心账簿来追踪账户余额。不管是中央银行、商业银行、VISA或者任何其他的支付服务提供商,都需要一个中心控制的数据库来追踪这些钱是属于谁的。
从Dai及其他加密学无政府主义者的角度看,这种方式的问题就在于政府能够通过政策管理来控制金钱的流动,同时要使用这些机构的服务的话,也必须要暴露个人身份。“我发明b-money的目的就是推动自愿的在线经济发展…政府将无法向这个经济收税或者通过暴力来管制它。” 他稍后解释道。
于是Dai提出了一个替代方案,或者说是两个替代方案。
在第一个方案中,账簿不再由一个中心机构管理,而是所有的参与者都拥有一份该账簿的副本。每当有一笔新的交易产生,每个人都更新他们手里的账簿。此外,这些账簿还包含公钥,上面附着相应的金额,但是没有真名。这种去中心化的手段将使得没有任何人能够阻止交易,同时也保证所有用户的隐私安全。
下面来举个简单的例子。假设小红和小明都是b-money的用户,他们都拥有公钥:小红拥有公钥“A”,小明拥有公钥“B”,他们也都拥有相应的私钥。在所有用户共同维护的账簿中,他们的公钥上都有b-money货币,假设小红和小明分别都拥有3块钱。
如果小红向小明购买了一个产品,那么小红需要向他支付两块钱,小明把他的公钥B发送给小红。于是小红通过信息的形式创建一个交易:“从A发送2块钱到B。”接着小红用公钥A相应的私钥在这条信息上签名,然后这条信息以及密码学签名就会被发送给所有b-money用户。
这条签了名的信息向所有b-money用户证明,公钥A的主人想要将2块钱发送给公钥B。因此每个人都会更新他们的账簿,于是A的余额为1,而B的余额为5,而大家都不会知道小明或者小红的身份。
如果你觉得这个方案很眼熟那就对了:这就和十年之后中本聪创建比特币差不多。
第二版本的B-money
但是Dai认为他第一个版本的b-money方案无法真正应用到实践中来,“因为它需要一个很大的即时同步、防干扰的匿名广播通道。”他在他的提案中解释道。
换句话说,第一版的b-money提案并不能解决双重花费的问题。小红可以将2块钱同时发送给小明的B公钥和小兰的C公钥,将这两笔交易同时发送给网络的不同部分。于是小明和小兰都给小红发货了…后来才发现有一半的网络拒绝承认他们的新余额。
于是Dai在同一篇提案中由提出了第二个b-money解决方案。
在这个版本中,并不是每个人都拥有账簿。这个系统中有两类用户:普通用户以及“服务器”。服务器由一个类似于Usenet的广播网络连接起来,只有服务器才对b-money的账簿进行管理。要验证交易是否真的执行了,普通用户——比如小明和小兰——需要通过一组随机的服务器来进行验证。(如果出现冲突的话,那么小明和小兰就会拒绝来自小红的交易,并且不给她发货。)
尽管提案里并没有细说,但是应该任何一个人都能够成为一个服务器,只不过“每个服务器都要向一个特别的账户打一定额度的钱,如果发现有人作弊,作弊者就会被罚钱,而举报者得到奖励,”Dai这样写道。 服务器同时也应当定期地发布并在密码学上对所有权数据库保持承诺。
“每一个参与者都应当检查他们自己的账户余额是否正确,以及所有账户余额之和不应当大于总发行货币金额。” Dai写道,“这样的话,即使所有服务器联合起来,也无法永久地毫不费力地扩大货币发行总量。”
如果这个你也觉得眼熟的话,那也并不奇怪:Dai的第二个版本的b-money和今天所说的权益证明系统有些相似。
此外,Dai还在他的提案中添加了一个智能合约解决方案的早期版本。这种智能合约就像是权益证明系统和仲裁系统的混血儿,使用该智能合约及仲裁者的双方必须将资金转账至一个特别的账户中。然而令人迷惑的是,从现代的标准看,这些合约并没有一个纠纷调解系统:很可能的情况是,出现纠纷时,不同的用户(或者服务器)将会各自调整账簿,导致网络上的账簿无法达成共识。(笔者的推测是,对作弊行为的惩罚非常严峻,导致没有人会作弊。)
货币政策
B-money和比特币最大的不同之处应该就在于Dai的货币政策了。
比特币的货币政策非常直截了当。为了让货币进入流通,比特币最开始每个区块包含50个新的比特币,到目前为止已经降到了12.5个了。这个数字还会随着时间的推移而下降,直到几百年后,当发行的比特币总量达到略低于2100万时便停止发行。这个货币政策是否理想一直是人们争论的问题,但有一件事情很确定:这个政策到目前为止并没有使得比特币价格稳定下来。
和比特币相反,Dai非常坚定地将稳定币价当做他的目标。为了实现这个目标,他将b-money的价格与一篮(理论上的)货物相挂钩。比如说,100个单位的b-money价值1篮货物。这将使得b-money的价格保持稳定,至少相对于这篮货物来说是稳定的:不管是过去、现在还是将来,100个单位的b-money都一定能够购买1篮货物。
要发行新的货币的话,用户就要计算一个数学问题,以此来决定一篮货物到底值多少钱:这就是“工作证明”。比如说,假设在某个时间点,一篮货物价值80美元,那就需要有相应的价值80美元的工作证明来匹配它。如果10年后,同样一篮货物价格涨到了120美元,那么100个单位的b-money就要匹配120美元的工作证明。
按照这个规则,所有的用户或者服务器将把100个单位的b-money奖励给第一个提供有效的工作证明的人。因此没人会想要提供工作证明,除非他们打算使用,这就能有效防止“b-money经济体”发生通胀。
在他的提案的附录中,Dai提出了另一种发行货币的方法,即通过拍卖来发行货币。要么是所有的用户(第一协议),要么是服务器(第二协议)来拟定一个适合的新发货币量。假设这个数值是500个单位的b-money,然后举行一场拍卖来决定谁来创造这500个单位的b-money,最终选出愿意为这500个单位的b-money提供最多工作证明者。
比特币
B-money后来并没有付诸实践,因为没办法实现:“B-money还不是一个完整的可行的方案。”Dai几年前在一个LessWrong论坛的帖子里承认道。即使b-money 真的实施了,Dai也并不期望它能够大展宏图。
“我认为b-money最多可以为那些不想或者不能用政府发行的货币或者合约强制执行机制的人提供一个替代解决方案。” 在Cypherpunks订阅邮件中发表他的提案之后,Dai又在随后的一封邮件中解释道。
确实,b-money的许多问题一直未得到解决,或者至少是没有被指出。也许最重要的是,它的共识模型并不非常稳健,这一点在Dai提出的智能合约解决方案中非常明显。此外我们现在也发现了许多权益证明系统带来的新问题,而Dai当时可能并没有预见到这些问题;比如说该如何判断什么是“作弊行为”并没有给出清楚的解释。更不用说这份提案的其他小问题,比如说资金可被追踪而带来的隐私问题,或者是货币发行(“挖矿”)可能会形成中心化。这其中的一些问题甚至至今在比特币身上也没有得到解决。
Dai在提出b-money之后并没有再继续试图解决这些问题。他去了TerraSciences和微软工作,可能不久后就提前退休了。
“我没有再继续研究这些问题是因为,当我写完b-money的提案之后,我对加密学无政府主义已经感到有些幻灭了。” Dai后来在LessWrong上解释道。他又说道:“我没有想到这样一个系统投入实践之后,会吸引如此多的注意,并且会被这么多人使用,而不仅仅是Cypherpunks那群加密学铁杆粉丝。”
但是Dai的提案并没有被人们忘记:比特币白皮书中的第一条参考文献就是b-money。不过尽管b-money和比特币的设计非常相似,中本聪也有可能并不是受到b-money的启发而发明比特币。Dai本人就相信比特币的发明者是自己独立想出这个点子的。
在比特币白皮书发表前不久,Hashcash的发明者Adam Back建议中本聪去读一读Dai的研究成果,Dai是为数不多的中本聪在发表白皮书之前亲自联系过的人之一。但是Dai并没有回复中本聪的邮件,后来他回想起来时表示感到后悔。Dai认为比特币的发行机制有问题,这并不令人感到惊讶。
“我认为比特币的货币政策会最终导致其失败(因为它的货币政策会导致币价震荡,这就会让用户损失惨重,要使用这个货币的话就不得不冒极大的风险,或者进行高昂的对冲),” 他在LessWrong 上写道,“比特币可能带来的影响之一是,由于其有瑕疵的货币政策以及因此而来的价格震荡,比特币将不会发展成很大规模,但是比特币已经占领了加密货币这个领域,这就导致将来也不会有加密货币发展成非常大的规模。”
他又补充道:“这可能有一部分是我的错,因为中本聪给我发邮件询问我对他的稿件的看法时,我没有回复他。不然我可能能够成功劝说他(或者他们)不要用‘固定货币发行量’这个想法。”
这是Bitcoin Magazine创世文档系列的第三篇,前两篇文章涵盖了David Chaum博士的eCash,和Adam Back博士的Hashcash。更多关于Wei Dai的内容可访问weidai.com。
作者:Aaron van Wirdum
链接:https://bitcoinmagazine.com/articles/genesis-files-if-bitcoin-had-first-draft-wei-dais-b-money-was-it/